package com.ruoyi.project.system.mapper;

import com.ruoyi.project.system.domain.SysDepatment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author :sxt
 * @dote :20:15 2021/7/13
 */
@Mapper
public interface SysDmMapper {

    /**
     * 根据查询条件查询科室
     * @param sysDepatment
     * @return
     */
    List<SysDepatment> selectList(SysDepatment sysDepatment);

    /**
     * 新增科室
     * @param sysDepatment
     * @return
     */
    int insert(SysDepatment sysDepatment);


    /**
     * 根据ID查询科室
     * @param sdId
     * @return
     */
    SysDepatment selectById(Integer sdId);

    /**
     * 修改科室
     * @param sysDepatment
     * @return
     */
    int update(SysDepatment sysDepatment);

    /**
     * 删除指定Id的科室
     * 注意：参数不是基本数据类型和String类型，对象时
     * 当是数组和集合时要起别名，@Param注解的作用是给参数命名
     * 参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中（一般通过#{}的方式，${}会有sql注入的问题）
     * 不使用@Param注解时，最好传递 Javabean。在SQL语句里就可以直接引用JavaBean的属性，而且只能引用JavaBean存在的属性。
     * 所以参数理论上是都要起别名
     * @param sdIds
     * @return
     */
    int delete(@Param("sdlds") Integer[] sdIds);

    /**
     * 查寻所有科室详细信息
     * @return
     */
    List<SysDepatment> selectAllSdm();
}
